#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
const int MAXN=2050;
struct node{
    int v;
    int i;
}a[MAXN];
int id[MAXN];
bool cmp(node a,node b){
    return a.v>b.v;
}
int main(void){
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i].v);
        a[i].i=i;
    }
    sort(a,a+n,cmp);
    int ans=0;
    for(int i=0;i<k;i++){
        id[i]=a[i].i;
        ans+=a[i].v;
    }
    id[k]=n;
    sort(id,id+k+1);
    printf("%d\n",ans);
    printf("%d ",id[1]);
    for(int i=1;i<k-1;i++){
        printf("%d ",id[i+1]-id[i]);
    }
    if(k!=1){
        printf("%d\n",id[k]-id[k-1]);
    }
}
